package com.sky.mapper;

import com.sky.dto.DataOverViewQueryDTO;
import com.sky.dto.GoodsSalesDTO;
import org.apache.ibatis.annotations.Mapper;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * @Description ReportMapper
 * @Author zhuzi
 * @Date 2023/10/08
 */
@Mapper
public interface ReportMapper {

    /**
     * 获取当天的营业额
     *
     * @param date LocalDate
     * @return BigDecimal
     */
    BigDecimal getTurnoverByDate(LocalDate date);

    /**
     * 获取当天新增的用户数
     *
     * @param date LocalDate
     * @return Integer
     */
    Integer getNewUserCountByDate(LocalDate date);

    /**
     * 获取当天订单总数
     *
     * @param date LocalDate
     * @return Integer
     */
    Integer getOrderCountByDate(LocalDate date);

    /**
     * 获取当天有效订单数
     *
     * @param date LocalDate
     * @return Integer
     */
    Integer getValidOrderCountByDate(LocalDate date);

    /**
     * 获取销量前10的商品（包括菜品和套餐）
     *
     * @param data DataOverViewQueryDTO
     * @return List
     */
    List<GoodsSalesDTO> getTop10(DataOverViewQueryDTO data);

}
